package ucc.request;

import java.util.ArrayList;

import ucc.objects.CaisseDuJourDTO;
import ucc.objects.ClasseDeProduitDTO;
import ucc.objects.CompteUtilisateurDTO;
import ucc.objects.ContenanceDTO;
import ucc.objects.FonctionDTO;
import ucc.objects.OperationCaisseDTO;
import ucc.objects.ProduitDTO;
import ucc.objects.TypeDeProduitDTO;
import configur.PluginFactory;

public interface UccOper {
	UccOper INSTANCE = (UccOper) PluginFactory.INSTANCE
			.getPluginFor(ucc.request.UccOper.class);

	void ajouterUnCompteUtilisateur(
			CompteUtilisateurDTO nouveauCompteUtilisateur);

	void majUnCompteUtilisateur(CompteUtilisateurDTO compteUtilisateur);

	void ajouterUneFonction(FonctionDTO nouvelleFonction);

	void majUneFonction(FonctionDTO fonction);

	void ajouterUnTypeDeProduit(TypeDeProduitDTO nouveauTypeDeProduit);

	void majUnTypeDeProduit(TypeDeProduitDTO typeDeProduit);

	void ajouterUneClasseDeProduit(ClasseDeProduitDTO nouvelleClasseDeProduit);

	void majUneClasseDeProduit(ClasseDeProduitDTO classeDeProduit);

	void ajouterUneContenance(ContenanceDTO nouvelleContenance);

	void majUneContenance(ContenanceDTO contenance);

	void ajouterUnProduit(ProduitDTO nouveauProduit);

	void majUnProduit(ProduitDTO produit);

	void ajouterUnCompte(ArrayList<OperationCaisseDTO> listeOperation);

	void assignationCaisseDuJour(CaisseDuJourDTO caisseDuJour);

	void majCaisseDuJour(CaisseDuJourDTO caisseDuJour);
}
